"""
@name : 12.io模型
@author : wenyao
@projectname: xsfh
"""
#阻塞、非阻塞
#关注的是等待结果时的状态（做不做其他事情）

#同步和异步
#关注的是消息通信机制（主动等待获取结果，还是被动接受）

#linux五种io模型
#阻塞io
#非阻塞io
#io多路复用
#   一个进程或线程能同时处理多个io请求（减少创建多个线程或进程同步执行io的开销）
#   select（最多支持1024个文件描述符）
#     1、将fd_set从用户空间拷贝到内核空间
#     2、等待事情触发（数据返回），如果有数据返回了，它就轮询所有的fd，直到通知到对应的fd来获取数据
#     3、结束之后又将fd_set从内核空间拷贝到用户空间
#   poll
#     跟select差不多，只是没有1024的限制
#   epoll
#       #select的缺点：
        # 1、频繁的拷贝这个
        # 2、最大只支持1024
        # 3、轮询去判断哪个fd数据准备就绪

        #epoll是有三个函数做这个事情
        #1、epoll_create  创建一个epoll实例，将fd_set一次性拷贝到内核
        #2、epoll_ctl 在创建实例的时候，给每个fd都绑定一个回调函数
        #3、epoll_wait
#信号驱动io
#异步io

